<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;

class User extends Controller
{
    public function index()
    {
        // 原生
//        $list = Db::query("SELECT * FROM user");
//        $list = Db::query("SELECT * FROM user WHERE id=?", [3]);
        // DB类
//        $list = Db::table('user')->order(['id'=>'desc'])->select();
        // 助手函数
        $list = db('user')->field(['id', 'name'])->select();
        dump($list);
    }

    public function insert()
    {
        // 原生
//        $result = Db::execute("INSERT INTO user (id,name,age) VALUES(null,'t1','66')");
//        $result = Db::execute("INSERT INTO user (id,name) VALUES(:id, :name)", ['id'=>null,'name'=>'t2']);

        // 准备数据
        $data = ['name' => 't5', 'age' => '77'];
        // DB类
        // 受影响行数
//        $result = Db::table('user')->insert($data);
        // 自增ID
//        $result = Db::table('user')->insertGetId($data);

        // 助手函数
        $result = db('user')->insert($data);
        dump($result);
    }

    public function delete()
    {
        // 原生
//        $result = Db::execute("DELETE FROM user WHERE name='t2'");
        // DB类
//        $result = Db::table('user')->delete(54);
//        $result = Db::table('user')->where('name', 't1')->delete();
        // 助手函数
        $result = db('user')->delete(46);

        dump($result);
    }

    public function update()
    {
        // 原生
//        $result = Db::execute("UPDATE user SET age = '5' WHERE id = '55'");
        // DB类
//        $result = Db::table('user')->where('id','55')->update(['age'=>99]);

        // 助手函数
        $result = db('user')->where('id', '1')->update(['age' => 17]);
        dump($result);
    }


    public function sw()
    {
//        // 自动处理事务
//        Db::transaction(function (){
//            $userdata = ['name' => '吕布', 'age' => '30', 'sex' => '1'];
//            $id = Db::table('user')->insertGetId($userdata);
//            var_dump('用户的ID: ' . $id);
//            $loverdata = ['name'=>'貂蝉','sex'=>'0','user_id'=>$id];
//            $id = Db::table('lover')->insert($loverdata);
//            echo '关系建立完成';
//        });

        // 手动处理事务
        Db::startTrans();
        try {
            $userdata = ['name' => '老大', 'age' => '19', 'sex' => '2'];
            $id = Db::table('user')->insertGetId($userdata);
            var_dump('用户的ID: ' . $id);
            $loverdata = ['name' => '百合', 'sex' => '1', 'user_id' => $id];
            $id = Db::table('lover')->insert($loverdata);
            echo '关系建立完成';

            // 提交事务
            Db::commit();
        } catch (\Exception $e) {
            echo '关系建立失败....';
            // 回滚事务
            Db::rollback();
        }
    }


}
